home *** CD-ROM | disk | FTP | other *** search
/ Power Hacker 2003 / Power_Hacker_2003.iso / Exploit and vulnerability / w00w00 / sectools / fragrouter / Libnet-0.99b / configure.in < prev    next >
Encoding:
Text File  |  1999-07-26  |  5.8 KB  |  244 lines

  1. dnl     $Id: configure.in,v 1.2 1999/05/27 02:32:18 dugsong Exp $
  2. dnl
  3. dnl     Libnet autoconfiguration information file
  4. dnl     Copyright (c) 1998, 1999 Mike D. Schiffman <mike@infonexus.com>
  5. dnl                              route|daemon9 <route@infonexus.com>
  6. dnl     All rights reserved.
  7. dnl
  8. dnl     Process this file with autoconf to produce a configure script.
  9. dnl
  10.  
  11. AC_INIT(src/build_ip.c)
  12.  
  13. dnl
  14. dnl Determine hosttype and set the root install directory.
  15. dnl
  16. AC_CANONICAL_SYSTEM
  17. AC_PREFIX_DEFAULT(/usr)
  18.  
  19. if test "$prefix" = "NONE"; then
  20.     prefix="/usr"
  21. fi
  22.  
  23. dnl
  24. dnl Check compiler type.
  25. dnl
  26. AC_PROG_CC
  27.  
  28. dnl
  29. dnl Check for typedefs, structures, and compiler characteristics.
  30. dnl
  31. AC_C_CONST
  32.  
  33.  
  34. dnl
  35. dnl Use these compiler flags if we have gcc.
  36. dnl
  37. if test $ac_cv_prog_gcc = yes; then
  38.     CCOPTS='-O3 -funroll-loops -fomit-frame-pointer -pipe -Wall'
  39.     CFLAGS="$CCOPTS"
  40. fi
  41.  
  42. dnl
  43. dnl Check for package inclusion/exclusion
  44. dnl
  45. AC_ARG_WITH(pf_packet, [ --with-pf_packet=[yes,no] override defaults], \
  46.     with_pf_packet=yes, with_pf_packet=no)
  47.  
  48. dnl
  49. dnl Check for programs.
  50. dnl
  51. AC_PROG_INSTALL
  52. AC_PROG_MAKE_SET
  53. AC_CHECK_PROGS(RANLIB, ranlib, @true)
  54. AC_CHECK_PROGS(AR, ar, @true)
  55. AC_CHECK_PROGS(LN, ln, @true)
  56.  
  57. dnl
  58. dnl Check for library functions.
  59. dnl
  60. AC_CHECK_FUNCS(strerror)
  61.  
  62. dnl
  63. dnl Check for libaries
  64. dnl
  65. AC_CHECK_LIB(pcap, pcap_open_live, AC_DEFINE(HAVE_LIB_PCAP))
  66.  
  67. dnl
  68. dnl Get lowlevel packet writing interface type
  69. dnl
  70. AC_MSG_CHECKING(low-level packet interface type)
  71.  
  72. if test -r /dev/bpf0 ; then
  73.     LL_INT_TYPE=bpf
  74.     AC_MSG_RESULT(found bpf)
  75. elif test -r /usr/include/net/pfilt.h ; then
  76.     LL_INT_TYPE=pf
  77.     AC_MSG_RESULT(found pf)
  78. elif test -r /dev/nit ; then
  79.     LL_INT_TYPE=snit
  80.     AC_MSG_RESULT(found snit)
  81. elif test -r /usr/include/sys/net/nit.h ; then
  82.     LL_INT_TYPE=nit
  83.     AC_MSG_RESULT(found nit)
  84. elif test -r /usr/include/net/raw.h ; then
  85.     LL_INT_TYPE=snoop
  86.     AC_MSG_RESULT(found snoop)
  87. elif test -r /usr/include/sys/dlpi.h ; then
  88.     LL_INT_TYPE=dlpi
  89.     AC_MSG_RESULT(found dlpi)
  90.     AC_DEFINE(HAVE_DLPI)
  91. elif test -r /usr/include/linux/socket.h ; then
  92.     LL_INT_TYPE=sockpacket
  93.     AC_MSG_RESULT(found SOCK_PACKET)
  94.     if test $with_pf_packet = yes; then
  95.          AC_LIBNET_CHECK_PF_PACKET
  96.     fi
  97. elif test -c /dev/bpf0 ; then           # check again in case not readable
  98.     LL_INT_TYPE=bpf
  99.     AC_MSG_RESULT(found bpf)
  100. elif test -c /dev/enet ; then           # check again in case not readable
  101.     LL_INT_TYPE=enet
  102.     AC_MSG_RESULT(found enet)
  103. elif test -c /dev/nit ; then            # check again in case not readable
  104.     LL_INT_TYPE=snit
  105.     AC_MSG_RESULT(found snit)
  106. else
  107.     LL_INT_TYPE=null
  108.     AC_MSG_WARN(could not find a low level packet interface)
  109.     AC_MSG_WARN(low level packet creation API will not be added to the library)
  110. fi
  111.  
  112. dnl
  113. dnl Convert link layer type to uppercase.
  114. dnl
  115. LL_INT_TYPE_UC=`echo $LL_INT_TYPE | tr a-z A-Z`
  116.  
  117. dnl
  118. dnl Check and set OS specific parameters.
  119. dnl
  120. AC_SUBST(LL_INT_TYPE_UC)
  121. AC_SUBST(LL_INT_TYPE)
  122. AC_SUBST(LIB_PREFIX)
  123. AC_SUBST(INC_PREFIX)
  124. AC_SUBST(MAN_PREFIX)
  125. AC_SUBST(BIN_PREFIX)
  126. AC_SUBST(RANLIB)
  127. AC_SUBST(AR)
  128. AC_SUBST(LN)
  129. AC_SUBST(ADDITIONAL_LIBS)
  130.  
  131. case "$target_os" in
  132.  
  133. *linux*)
  134.     AC_DEFINE(_BSD_SOURCE)
  135.     AC_DEFINE(__BSD_SOURCE)
  136.     AC_DEFINE(__FAVOR_BSD)
  137.     AC_LIBNET_CHECK_IP_CSUM
  138.     AC_CHECK_HEADERS(net/ethernet.h)
  139.     MAN_PREFIX="$prefix/man/man3/"
  140.     LIB_PREFIX="$prefix/lib/"
  141.     INC_PREFIX="$prefix/include/"
  142.     BIN_PREFIX="$prefix/bin/"
  143.     ;;
  144.  
  145. *freebsd*)
  146.     AC_DEFINE(BSDISH_OS)
  147.     AC_DEFINE(BSD_BYTE_SWAP)
  148.     MAN_PREFIX="$prefix/man/man3/"
  149.     LIB_PREFIX="$prefix/lib/aout"
  150.     INC_PREFIX="$prefix/include/"
  151.     BIN_PREFIX="$prefix/bin/"
  152.     ln -sf FreeBSD support/bpf-lkm/etherspoof
  153.     ;;
  154.  
  155. *netbsd*)
  156.     AC_DEFINE(BSDISH_OS)
  157.     AC_DEFINE(BSD_BYTE_SWAP)
  158.     MAN_PREFIX="$prefix/man/man3/"
  159.     LIB_PREFIX="$prefix/lib/aout"
  160.     INC_PREFIX="$prefix/include/"
  161.     BIN_PREFIX="$prefix/bin/"
  162.     ;;
  163.  
  164. *openbsd*)
  165.     AC_DEFINE(BSDISH_OS)
  166.     MAN_PREFIX="$prefix/man/man3/"
  167.     LIB_PREFIX="$prefix/lib/"
  168.     INC_PREFIX="$prefix/include/"
  169.     BIN_PREFIX="$prefix/bin/"
  170.     ln -sf OpenBSD support/bpf-lkm/etherspoof
  171.     ;;
  172.  
  173. *bsdi*)
  174.     AC_DEFINE(BSDISH_OS)
  175.     AC_DEFINE(BSD_BYTE_SWAP)
  176.     MAN_PREFIX="$prefix/man/man3/"
  177.     LIB_PREFIX="$prefix/lib/"
  178.     INC_PREFIX="$prefix/include/"
  179.     BIN_PREFIX="$prefix/bin/"
  180.     ;;
  181.  
  182. *solaris*)
  183.     AC_DEFINE(HAVE_SOLARIS)
  184.     AC_DEFINE(RAW_IS_COOKED)
  185.     AC_CHECK_HEADERS(sys/bufmod.h sys/dlpi_ext.h)
  186.     AC_MSG_CHECKING(for /dev/dlpi device)
  187.     if test -c /dev/dlpi; then
  188.         AC_MSG_RESULT(yes)
  189.         AC_DEFINE(HAVE_DEV_DLPI)
  190.     else
  191.         AC_MSG_RESULT(no)
  192.         dir="/dev/dlpi"
  193.         AC_MSG_CHECKING(for $dir directory)
  194.         if test -d $dir ; then
  195.             AC_MSG_RESULT(yes)
  196.             AC_DEFINE_UNQUOTED(DLPI_DEV_PREFIX, "$dir")
  197.         else
  198.             AC_MSG_RESULT(no)
  199.         fi
  200.     fi
  201.     AC_CHECK_LIB(socket, socket, ,AC_MSG_ERROR(libsocket not found.))
  202.     AC_CHECK_LIB(nsl, gethostbyname, ,AC_MSG_ERROR(libnsl not found.))
  203.  
  204. dnl 
  205. dnl Broken checksums?
  206. dnl
  207.     case "`uname -r`" in
  208.     5.4)
  209.         AC_DEFINE(STUPID_SOLARIS_CHECKSUM_BUG)
  210.         ;;
  211.     5.5*)
  212.         AC_DEFINE(STUPID_SOLARIS_CHECKSUM_BUG)
  213.         ;;
  214.  
  215.     esac
  216.  
  217.     ADDITIONAL_LIBS='-lsocket -lnsl'
  218.     MAN_PREFIX="$prefix/man/man3/"
  219.     LIB_PREFIX="$prefix/lib/"
  220.     INC_PREFIX="$prefix/include/"
  221.     BIN_PREFIX="$prefix/bin/"
  222.     ;;
  223.  
  224. *)
  225.     AC_MSG_WARN(your OS is not officially supported yet)
  226.     AC_MSG_WARN(dunno if this will work)
  227.     AC_MSG_RESULT(you'll have to edit the makefile by hand)
  228.     AC_MSG_RESULT(please send diffs to mike@infonexus.com)
  229.     ;;
  230.  
  231. esac
  232.  
  233. AC_LIBNET_CHECK_LIBNET_VER
  234. AC_C_BIGENDIAN
  235. AC_LBL_UNALIGNED_ACCESS
  236.  
  237. AC_CHECK_HEADERS(sys/sockio.h)
  238. AC_CONFIG_HEADER(include/config.h)
  239. AC_OUTPUT(Makefile test/Makefile test/TCP/Makefile test/Ethernet/Makefile \
  240.         test/UDP/Makefile test/ICMP/Makefile test/Random/Makefile \
  241.         util/Makefile util/Get-mac/Makefile)
  242.  
  243. dnl EOF
  244.